package Demo1;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 34255
 * Date: 2024-06-05
 * Time: 16:24
 */
sealed public class Animal permits Dog,Cat{
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void eat(){
        System.out.println(this.name + "正在吃饭!");
    }
}
//non-sealed class Cat extends Animal{
//
//}

//final class Cat extends Animal{
//
//}

sealed class Cat extends Animal permits PetCat{

}

non-sealed class PetCat extends Cat{

}
//被sealed修饰的类为密封类
//如果类名后面没有用permits来允许指定那些类继承，则所有的类都可以继承该类
//如果加了permits指定允许那些类继承则只允许这些类继承，其他类继承报错
//继承了被sealed修饰的类，那么该类必须要加final,sealed,non-sealed三种修饰符中的其中一种
//final表示该类不能被其他类继承
//sealed表示该类为密封类，继承该类必须被三种修饰符其中一种修饰
//non-sealed表示该类可以被任何类继承

